# -*- coding: utf-8 -*-
import platform
import os
import getpass
import socket
import uuid
import hashlib
from .MyIO import *
from Crypto.Cipher import DES
from binascii import b2a_hex, a2b_hex

def get_architecture():
    # 获取操作系统的位数
    return platform.architecture()

def get_machine():
    '''计算机类型'''
    return platform.machine()
def get_node():
    '''计算机的网络名称'''
    return platform.node()
def get_processor():
    '''计算机处理器信息'''
    return platform.processor()
def get_system():
    '''获取操作系统类型'''
    return platform.system()
def get_TotalInfo():
    '''汇总信息'''
    return platform.uname()

def get_localDataPath():
    '''当前用户路径'''
    return os.path.expanduser('~')
def get_UserName():
    '''当前用户名'''
    return getpass.getuser()
def get_ComputerName1():
    '''获取机器名称'''
    return platform.node()
def get_ComputerName():
    '''获取机器名称'''
    return socket.gethostname()
def get_AddressIp():
    '''获取本机IP'''
    return socket.gethostbyname(get_ComputerName())
def get_Mac():
    '''获取MAC地址'''
    mac=uuid.UUID(int = uuid.getnode()).hex[-12:]
    return ':'.join(mac[e:e+2].upper() for e in xrange(0,11,2))

def show_os_all_info():
    '''print('操作系统的位数 : [{}]'.format(get_architecture()))
    print('计算机类型 : [{}]'.format(get_machine()))
    print('计算机的网络名称 : [{}]'.format(get_node()))
    print('计算机处理器信息 : [{}]'.format(get_processor()))
    print('操作系统类型 : [{}]'.format(get_system()))
    print('汇总信息 : [{}]'.format(get_TotalInfo()))
    print('当前用户路径: [{}]'.format(get_localDataPath()))
    print('当前用户名: [{}]'.format(get_UserName()))
    print('机器名称: [{}]'.format(get_ComputerName()))
    print('机器IP: [{}]'.format(get_AddressIp()))'''
    print('MAC地址: [{}]'.format(get_Mac()))
    m = hashlib.md5()
    m.update('123456'.encode(encoding='utf-8'))
    result = m.hexdigest()
    print('加密后: [{}]'.format(result))

def getLicenses():
    strMac = get_Mac()
    m = hashlib.md5()
    m.update(strMac.encode(encoding='utf-8'))
    zcm = m.hexdigest()
    return zcm

def pad(text):
    """
    # 加密函数，如果text不是8的倍数【加密文本text必须为8的倍数！】，那就补足为8的倍数
    :param text:
    :return:
    """
    while len(text) % 8 != 0:
        text += ' '
    return text

def LicensesSum(licenses):
    q = 0
    try:
        zcm = getLicenses()
        key = "jsjx-025"
        #text = pad(zcm+",sipuser:0")
        obj = DES.new(key)
        # 解密
        get_cryp = a2b_hex(licenses)
        after_text = obj.decrypt(get_cryp)
        #print "解密:" + after_text.strip()
        if after_text.strip().split(',')[0]==zcm:
            q = after_text.strip().split(',')[1].split(':')[1]
    except Exception as e:
        print e
    return q